<?php
require_once dirname(__FILE__) . '/SQLHelper.php';
/**
 * Description of Insert
 *
 * @author Rino7
 */
abstract class Insert {
    
    protected $_tableName = "";
    protected $_fields = array();
    protected $_query = "";
    
    abstract public function begin();
    
    public function __construct($tableName = "") 
    {
        if(!empty($tableName)) {
            $this->_tableName = $tableName;
        }
    }
    
    public function addNameValueFieldPair($fieldName, $fieldValue)
    {
        if(!empty($fieldName)) {
            $this->_fields[$fieldName] = $fieldValue;
        }
    }
    
    public function end() 
    {
        /**
            *@TODO: validar los datos de entradas con addslashes 
         * que pasa si un campo puede llevar valor vacío? y si no puede?
         * la validación se debería hacer en una capa separada, cuand llega aca
         * ya esta validado si el valor puede venir vacio o no.
            */
        foreach($this->_fields as $name => $value) {
                $this->_query .= " {$name} = '" . $value . "',";
        }
        
        $this->_query = substr($this->_query, 0, -1);
    }
    
    public function execute() 
    {
        SQLHelper::getInstance()->executeSaveQuery($this->_query);
    }
    
}

?>
